package controllers

import (
	"ginstudydemo.com/main/models"
	"ginstudydemo.com/main/service"
	"github.com/gin-gonic/gin"
)

type ICategoryController interface {
	CreateTestDataHandler()
}

type CategoryController struct{}

func NewCategoryController() *CategoryController {
	return &CategoryController{}
}

// GetCateAndResUseRecursionByCateCode 递归获取分类以及分类的数据(根据分类的code)
func (u CategoryController) GetCateAndResUseRecursionByCateCode(c *gin.Context) {

	var query models.CateAndResUseRecursionParams
	// 获取查询参数（除分页参数）
	if err := c.ShouldBindQuery(&query); err != nil {
		service.ReturnErr(c, "9999", err.Error())
		c.Abort() // 终止后续处理
		return    // 确保不会继续执行后续代码
	}

	data, modelErr := models.NewCategoryModel().GetCategoryAndResRecursionData(query)

	if !(modelErr == nil) {
		service.ReturnErr(c, "9999", modelErr.Error())
		c.Abort()
		return
	}

	service.ReturnSuccess[[]models.CategoryAndResRecursionData](c, "2000", "ok", data)

}

// GetCateUseRecursionByCateCode 递归获取分类(根据分类的code)
func (u CategoryController) GetCateUseRecursionByCateCode(c *gin.Context) {

	var query models.CateAndResUseRecursionParams
	// 获取查询参数（除分页参数）
	if err := c.ShouldBindQuery(&query); err != nil {
		service.ReturnErr(c, "9999", err.Error())
		c.Abort() // 终止后续处理
		return    // 确保不会继续执行后续代码
	}

}
